![2024年6月現在 AWS CLI の MFA デバイスとしてパスキーは使用できない](https://devio2023-media.developers.io/wp-content/uploads/2023/08/aws-cli.png)
2024年6月現在 AWS CLI の MFA デバイスとしてパスキーは使用できない
ども、大瀧です。 アメリカで開催中のAWSセキュリティイベント AWS re:Inforce 2024 にて、AWS管理コンソールでのパスキー対応が発表されました。早速発表記事や試してみた記事が本ブログにアップされています。AWS CLIでも使えるのかなと思ったのですが、結果として現時点ではサポートしていないことがわかったので本ブログで試したこと、調べたことを報告します。
AWSドキュメント
AWS IAMのドキュメントには、既にパスキーを設定するためのドキュメントがあります。(2024/06/13時点では英語のみ、日本語に切り替えるとパスキーの説明のないページになります)
従来の内容の日本語ページと見比べてみると、YubiKeyなどのFIDO2セキュリティキーは従来からサポートしていて、今回のパスキーサポートによってsynced passkeys(iCloudキーチェーンのようなデバイス間で同期するキー)とdevice-bound passkeys(FIDO2セキュリティーキーと紐付けるデバイスごと固有のキー)の2種類をサポート、それぞれ扱えるようです。FIDO2セキュリティキーについては、以下の記事が詳しいです。
そして、設定したパスキーやセキュリティキーをMFAデバイスとして設定するドキュメントは以下です。
このページの最後に Notes として制限事項の記載があり、その2つ目に以下の記載があります。
You cannot use AWS CLI commands or AWS API operations to enable FIDO security keys.
「FIDO security keys」という記述ですが、リンク先のURLが先述のドキュメントになっているので、synced/device-bound passkeysが対象と考えるのが自然かなと思います。
試した軌跡
ともあれ、AWS管理コンソールに設定したパスキーにはARNがアサインされますので、AWS CLIのMFA設定に入れてみて、どう動くかを試してみます。
[profile passkeyrole] role_arn = arn:aws:iam::123456789012:role/passkeytestrole mfa_serial = arn:aws:iam::234567890123:u2f/user/passkeytestuser/passkey-XXXXXXXXXXXXXXXXXXXXXX :
% aws s3 ls --profile passkeyrole Enter MFA code for arn:aws:iam::234567890123:u2f/user/passkeytestuser/passkey-XXXXXXXXXXXXXXXXXXXXXX: [適当な文字を入力] An error occurred (AccessDenied) when calling the AssumeRole operation: MultiFactorAuthentication failed, unable to validate MFA code. Please verify your MFA serial number is valid and associated with this user.
仮想MFAデバイスと同様トークンの入力を求められ、パスキー選択のような挙動にはなりませんでした。やはりパスキーは利用できないようです。
まとめ
AWS CLIのMFAデバイスとしてパスキーが使用できないということを、AWSドキュメントと検証から確認してみました。パスキーであればAWS CLIを実行するホストがリモートでも手元のスマホで"ポチー"と承認を行使できるので、使えたら便利だなぁと思っています(クライアントと認証器を分離できる)。
2024/06/14 ↓のツイートで@ritousさんにフィードバックをいただき、まとめの末尾の文章を追補しました。
ここさらっと流さずにClientの概念に触れて欲しかったな。
> パスキーであればスマホの通知からの"ポチー"の承認で行使できるのでAWS CLIでも使えたら便利だなぁと思っています。#DevelopersIO 2024年6月現在 AWS CLI の MFA デバイスとしてパスキーは使用できない https://t.co/lz1sYRhaUI
— 👹秋田の猫🐱 (@ritou) June 14, 2024